pub fn convert_base(num_str: &str, to_base: u32) -> String {
    let str_num = &num_str[0..num_str.find('(').unwrap()];
    let str_base = &num_str[num_str.find('(').unwrap() + 1
                                ..num_str.find(')').unwrap()];
    let num = str_num.chars()
        .rev()
        .enumerate()
        .map(|(i,c)|{
            c.to_digit(str_base.parse::<u32>().unwrap()).unwrap() 
            * str_base.parse::<u32>().unwrap().pow(i as u32)
        })
        .sum::<u32>();
    let mut result = String::new();
    let mut n = num;
    println!("{}",n);
    //这里根据测例偷懒，省略了非16进制但是大于十进制的其他转换法😜
    let hex_digits = "0123456789abcdef";
    while n > 0{
        let digit = (n % to_base) as usize ;
        if digit == 0{
            result.push_str(&1.to_string());
            result.push_str(&0.to_string());
            break;
        }
        if to_base != 16{
            result.push_str(&digit.to_string());
            n /= to_base;
        }else{
            result.push_str(&hex_digits.chars().nth(digit).unwrap().to_string());
            n /= to_base;
        }
    }
    result.chars().rev().collect::<String>().push_str(&format!("({})",to_base));
    result
}
